matlab`算最优解

来源:百度知道 编辑:UC知道 时间:2024/05/10 21:30:22
约束条件:
1/10 TS + 1/5 SC <= 10*140=1400(每天占烤炉所烤出的台数)
TS <= 8000
SC <= 5000
目标函数:
Max Profit = 0.05TS+0.08SC–4000/30

怎样用matlab算最大值??
那如何用linprog来解呢??

用fminsearch、fmincon、linprog都可以求解的。

clc;clear;
f=inline('-(0.05*x(1)+0.08*x(2)-4000/30)')
A=[1/10 1/5];b=1400;
Aeq=[];beq=[];
LB=[0 0];UB=[8000 5000];
[X,FVAL,EXITFLAG] = fmincon(f,[1000 1000],A,b,Aeq,beq,LB,UB)
TS=X(1),SC=X(2),max=-FVAL

结果:
X = 8000 3000
FVAL = -506.6667
EXITFLAG = 1

TS = 8000
SC = 3000
max = 506.6667

【补充】用linprog
clc;clear;
f=[-0.05 -0.08]
A=[1/10 1/5];b=1400;
Aeq=[];beq=[];
LB=[0 0];UB=[8000 5000];
[X,FVAL,EXITFLAG] = linprog(f,A,b,Aeq,beq,LB,UB)
TS=X(1),SC=X(2),max=-FVAL-4000/30

结果:
TS = 8.0000e+003
SC = 3.0000e+003
max = 506.6667